From 6c8eedd2e12a1dde5790672ee5842885386efad7 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 2 Jul 2017 11:32:48 +0300 Subject: [PATCH] Simplify --- src/cargo/util/toml.rs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/cargo/util/toml.rs b/src/cargo/util/toml.rs index 738fef1ff..3803d59e6 100644 --- a/src/cargo/util/toml.rs +++ b/src/cargo/util/toml.rs @@ -116,23 +116,24 @@ pub fn read_manifest(path: &Path, source_id: &SourceId, config: &Config) trace!("read_manifest; path={}; source-id={}", path.display(), source_id); let contents = paths::read(path)?; - let layout = Layout::from_project_path(path.parent().unwrap()); - to_manifest(&contents, source_id, layout, config).chain_err(|| { + do_read_manifest(&contents, path, source_id, config).chain_err(|| { format!("failed to parse manifest at `{}`", path.display()) }) } -fn to_manifest(contents: &str, - source_id: &SourceId, - layout: Layout, - config: &Config) - -> CargoResult<(EitherManifest, Vec)> { - let manifest = layout.root.join("Cargo.toml"); - let manifest = match util::without_prefix(&manifest, config.cwd()) { - Some(path) => path.to_path_buf(), - None => manifest.clone(), +fn do_read_manifest(contents: &str, + path: &Path, + source_id: &SourceId, + config: &Config) + -> CargoResult<(EitherManifest, Vec)> { + + let layout = Layout::from_project_path(path.parent().unwrap()); + + let root = { + let pretty_filename = util::without_prefix(path, config.cwd()).unwrap_or(path); + parse(contents, pretty_filename, config)? }; - let root = parse(contents, &manifest, config)?; + let mut unused = BTreeSet::new(); let manifest: TomlManifest = serde_ignored::deserialize(root, |path| { let mut key = String::new(); -- 2.30.2